Rendering a three-dimensional model using a dither pattern

ABSTRACT

Rendering a three-dimensional model includes obtaining a characteristic of the three-dimensional model, determining a three-dimensional dither pattern based on the characteristic, and rendering the three-dimensional model using the three-dimensional dither pattern. Determining the three-dimensional dither pattern may include selecting a number of points to make up the dither pattern and a location of the points on the three-dimensional model.

TECHNICAL FIELD

[0001] This invention relates to rendering a three-dimensional (3D) model using a dither pattern.

BACKGROUND

[0002] A 3D model may be defined using 3D volumetric data. 3D volumetric data defines characteristics of models or “objects” in a 3D environment. For example, a 3D environment may include a cloud. 3D volumetric data may be used to define the density of regions of that cloud using dots or other elements.

DESCRIPTION OF THE DRAWINGS

[0003]FIG. 1 is perspective view of a 3D environment.

[0004]FIG. 2 is a perspective view of volumetric data in an object from the 3D environment.

[0005]FIG. 3 is a flowchart for rendering a 3D model using one or more dither patterns.

[0006]FIG. 4 is a block diagram of computer hardware on which the process of FIG. 3 may be implemented.

DESCRIPTION

[0007]FIG. 1 shows a 3D environment 10 rendered using 3D data. 3D environment 10 includes a cloud 12. Referring to FIG. 2, the 3D data for cloud 12 is 3D volumetric data. That is, the data defines which pixels are “on” or “off” in the 3D space occupied by cloud 12. In this way, the 3D volumetric data approximates the density of the cloud, i.e., more pixels “on” means higher density, fewer pixels “on” means lower density.

[0008] Although density is described here, it is noted that volumetric data is not limited to defining an object's density. Volumetric data may be used to define any characteristic of a 3D model. For example, volumetric data may be used to define color in the three-dimensional model, field strength (e.g., electrical or magnetic) in a 3D model, temperature in the 3D model, and/or pollution concentration in the 3D model.

[0009] Referring to FIG. 3, a process 20 is shown for rendering a 3D model, such as cloud 12, using 3D dither patterns. Process 20 receives (22) 3D data for 3D model 12. The data may be retrieved from a memory, downloaded from a network, or obtained from any available source. The following describes rendering cloud 12 using 3D dither patterns; however, it is noted that process 20 may be used to render any object in 3D environment 10 using dither patterns (provided, of course, that the object has associated volumetric data).

[0010] Process 20 selects (24) a 3D region of cloud 12. In this embodiment, process 20 selects a cubic region; however, any type of 3D region may be used. Irregularly shaped regions may be used, particularly for regions near the boundary of cloud 12. Process 20 obtains (26) a characteristic of the selected region. As noted, the characteristic, in this case density, is defined by volumetric data associated with the selected region. Process 20 obtains (26) the characteristic of the selected region as follows.

[0011] Process 20 selects (28) a sub-region of the selected region. The sub-region may be of any shape (e.g., a cube) and any size (e.g., from a single pixel to multiple pixels). Process 20 obtains (30) the desired characteristic, in this case density, of the sub-region. The density is obtained from volumetric data for the sub-region. Process 20 determines (32) if there are any sub-regions for which the density has not been obtained. If so, process 20 repeats blocks 28, 30 and 32 until the density has been obtained for all sub-regions of the region selected in 24. Once the density has been obtained for all sub-regions, process 20 averages (34) the values of the densities. The resulting average is assigned to be the density of the selected region.

[0012] Process 20 determines (36) a dither pattern for the selected region based on the density of the selected region. In this embodiment, the dither pattern is defined by data specifying pixels to illuminate in 3D space when rendering cloud 12. The pixels define individual points (or dots) in the dither pattern. The number and locations of the points in the selected region are based on the density of the region. That is, the higher the density, the greater the number of points that are included in the selected region. The points may be distributed randomly throughout the selected region to approximate the density, or they may be distributed evenly. The distribution may determined at the time of rendering, i.e., “on-the-fly”, or it may be pre-set. Alternatively, the dither pattern may be selected from a set of pre-stored dither patterns that correspond to various densities.

[0013] Once process 20 determines (36) the dither pattern for the selected region, it is determined (38) if there are any regions remaining in cloud 12. That is, process 20 determines (38) if dither patterns have been selected for all regions of cloud 12. If not, process 20 repeats blocks 24, 26, 36 and 38 until dither patterns have been selected for all regions.

[0014] Once the dither patterns have been selected, process 20 outputs the dither patterns to a 3D graphics rendering process. The output may be a list of points that comprise the dithered approximation of the volumetric data for cloud 12. The rendering process, which may or may not be part of process 20, renders (40) the 3D object, i.e., the cloud, using the dither patterns. The resulting rendering is a 3D object that approximates its density with concentrations of dots.

[0015]FIG. 4 shows a computer 42 on which process 20 may be implemented. Computer 42 includes a processor 44, a memory 46, and a storage medium 48 (see view 50). Storage medium 48 stores 3D data 52 for 3D environment 10 and machine-executable instructions 54 that are executed by processor 44 out of memory 46 to perform process 20 on 3D data 52.

[0016] Although a personal computer is shown in FIG. 4, process 20 is not limited to use with the hardware and software of FIG. 4. It may find applicability in any computing or processing environment. Process 20 may be implemented in hardware, software, or a combination of the two. Process 20 may be implemented in computer programs executing on programmable computers or other machines that each include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage components), at least one input device, and one or more output devices. Program code may be applied to data entered using an input device (e.g., a mouse or keyboard) to perform process 20 and to generate output information.

[0017] Each such program may be implemented in a high level procedural or object-oriented programming language to communicate with a computer system. However, the programs can be implemented in assembly or machine language. The language may be a compiled or an interpreted language.

[0018] Each computer program may be stored on a storage medium/article (e.g., CD-ROM, hard disk, or magnetic diskette) that is readable by a general or special purpose programmable computer for configuring and operating the computer when the storage medium or device is read by the computer to perform process 20. Process 20 may also be implemented as a machine-readable storage medium, configured with a computer program, where, upon execution, instructions in the computer program cause a machine to operate in accordance with process 20.

[0019] The invention is not limited to the specific embodiments described above. Other embodiments not described herein are also within the scope of the following claims. 

What is claimed is:
 1. A method of rendering a three-dimensional model, comprising: obtaining a characteristic of the three-dimensional model; determining a three-dimensional dither pattern based on the characteristic; and rendering the three-dimensional model using the three-dimensional dither pattern.
 2. The method of claim 1, wherein determining comprises selecting a number of points to make up the three-dimensional dither pattern and a location of the points on the three-dimensional model.
 3. The method of claim 1, wherein the characteristic is obtained for a region of the three-dimensional model, and the three-dimensional dither pattern is determined for the region.
 4. The method of claim 3, wherein characteristics are obtained for different regions of the three-dimensional model, different three-dimensional dither patterns are determined for the different regions based on the characteristics for the different regions, and the three-dimensional model is rendered using the different three-dimensional dither patterns.
 5. The method of claim 1, wherein the three-dimensional dither pattern comprises data specifying pixels to illuminate when rendering the three-dimensional model.
 6. The method of claim 5, wherein the pixels define individual points in the three-dimensional dither pattern.
 7. The method of claim 1, wherein the characteristic comprises a density of the three-dimensional model.
 8. The method of claim 7, wherein the density is obtained for a three-dimensional region of the three-dimensional model by averaging densities of sub-regions within the three-dimensional region.
 9. The method of claim 1, wherein the characteristic comprises one of a color of the three-dimensional model, a field strength in the three-dimensional model, a temperature in the three-dimensional model, and a pollution concentration in the three-dimensional model.
 10. The method of claim 1, wherein determining the three-dimensional dither pattern comprises selecting the three-dimensional dither pattern from a number of three-dimensional dither patterns stored in memory.
 11. An article comprising a machine-readable medium that stores executable instructions for rendering a three-dimensional model, the instructions causing a machine to: obtain a characteristic of the three-dimensional model; determine a three-dimensional dither pattern based on the characteristic; and render the three-dimensional model using the three-dimensional dither pattern.
 12. The article of claim 11, wherein determining comprises selecting a number of points to make up the three-dimensional dither pattern and a location of the points on the three-dimensional model.
 13. The article of claim 11, wherein the characteristic is obtained for a region of the three-dimensional model, and the three-dimensional dither pattern is determined for the region.
 14. The article of claim 13, wherein characteristics are obtained for different regions of the three-dimensional model, different three-dimensional dither patterns are determined for the different regions based on the characteristics for the different regions, and the three-dimensional model is rendered using the different three-dimensional dither patterns.
 15. The article of claim 11, wherein the three-dimensional dither pattern comprises data specifying pixels to illuminate when rendering the three-dimensional model.
 16. The article of claim 15, wherein the pixels define individual points in the three-dimensional dither pattern.
 17. The article of claim 11, wherein the characteristic comprises a density of the three-dimensional model.
 18. The article of claim 17, wherein the density is obtained for a three-dimensional region of the three-dimensional model by averaging densities of sub-regions within the three-dimensional region.
 19. The article of claim 11, wherein the characteristic comprises one of a color of the three-dimensional model, a field strength in the three-dimensional model, a temperature in the three-dimensional model, and a pollution concentration in the three-dimensional model.
 20. The article of claim 11, wherein determining the three-dimensional dither pattern comprises selecting the three-dimensional dither pattern from a number of three-dimensional dither patterns stored in memory.
 21. An apparatus for rendering a three-dimensional model, comprising: a memory that stores executable instructions; and a processor that executes the instructions to: obtain a characteristic of the three-dimensional model; determine a three-dimensional dither pattern based on the characteristic; and render the three-dimensional model using the three-dimensional dither pattern.
 22. The apparatus of claim 21, wherein determining comprises selecting a number of points to make up the three-dimensional dither pattern and a location of the points on the three-dimensional model.
 23. The apparatus of claim 21, wherein the characteristic is obtained for a region of the three-dimensional model, and the three-dimensional dither pattern is determined for the region.
 24. The apparatus of claim 23, wherein characteristics are obtained for different regions of the three-dimensional model, different three-dimensional dither patterns are determined for the different regions based on the characteristics for the different regions, and the three-dimensional model is rendered using the different three-dimensional dither patterns.
 25. The apparatus of claim 21, wherein the three-dimensional dither pattern comprises data specifying pixels to illuminate when rendering the three-dimensional model.
 26. The apparatus of claim 25, wherein the pixels define individual points in the three-dimensional dither pattern.
 27. The apparatus of claim 21, wherein the characteristic comprises a density of the three-dimensional model.
 28. The apparatus of claim 27, wherein the density is obtained for a three-dimensional region of the three-dimensional model by averaging densities of sub-regions within the three-dimensional region.
 29. The apparatus of claim 21, wherein the characteristic comprises one of a color of the three-dimensional model, a field strength in the three-dimensional model, a temperature in the three-dimensional model, and a pollution concentration in the three-dimensional model.
 30. The apparatus of claim 21, wherein determining the three-dimensional dither pattern comprises selecting the three-dimensional dither pattern from a number of three-dimensional dither patterns stored in memory. 